home *** CD-ROM | disk | FTP | other *** search
/ Aminet 3 / Aminet 3 - July 1994.iso / Aminet / dev / gui / GenCodeE_14.lha / GenCodeE / V1.4 / E / characters / Characters_procs.e < prev    next >
Encoding:
Text File  |  1994-04-23  |  5.0 KB  |  168 lines

  1.     /* This procedure creates one app object */
  2. PROC create_app()
  3.  
  4.     DEF app, wi_Characters, stR_name, cy_sex, ra_Race, ra_Class, ch_cloak
  5.     DEF ch_shield, ch_gloves, ch_helmet, sl_experience, sl_strength
  6.     DEF sl_dexterity, sl_condition, sl_intelligence
  7.  
  8.     DEF tmp_object : PTR TO obj_app
  9.  
  10.     IF ( tmp_object := New( SIZEOF obj_app ) ) = NIL THEN RETURN NIL
  11.  
  12.     tmp_object.stR_CY_sex := [ 'female', 'male', NIL ]
  13.     tmp_object.stR_GR_Register := [ 'Race', 'Class', 'Armor', 'Level', NIL ]
  14.     tmp_object.stR_RA_Race := [ 'Human', 'Elf', 'Dwarf', 'Hobbit', 'Gnome', NIL ]
  15.     tmp_object.stR_RA_Class := [ 'Warrior', 'Rogue', 'Bard', 'Monk', 'Magician', 'Archmage', NIL ]
  16.  
  17.     app := ApplicationObject,
  18.         MUIA_Application_Author, 'Stefan Stuntz',
  19.         MUIA_Application_Base, 'CHARACTER',
  20.         MUIA_Application_Title, 'Characters',
  21.         MUIA_Application_Version, '$VER: Characters 1.1 (xx.xx.xx)',
  22.         MUIA_Application_Copyright, 'Stefan Stuntz',
  23.         MUIA_Application_Description, 'Just an example !!',
  24.         MUIA_HelpFile, 'character.guide',
  25.         SubWindow, wi_Characters := WindowObject,
  26.             MUIA_Window_Title, 'Characters',
  27.             MUIA_HelpNode, 'WI_Characters',
  28.             MUIA_Window_ID, MAKE_ID( "0", "W", "I", "N" ),
  29.             WindowContents, GroupObject,
  30.                 Child, GroupObject,
  31.                     MUIA_HelpNode, 'GR_Global',
  32.                     MUIA_Group_Columns, 2,
  33.                     Child, Label( 'Name' ),
  34.                     Child, stR_name := StringObject,
  35.                         StringFrame,
  36.                         MUIA_HelpNode, 'STR_name',
  37.                         MUIA_String_MaxLen, 80,
  38.                         MUIA_String_Format, 0,
  39.                     End,
  40.                     Child, Label( 'Sex' ),
  41.                     Child, cy_sex := CycleObject,
  42.                         MUIA_HelpNode, 'CY_sex',
  43.                         MUIA_Cycle_Entries, tmp_object.stR_CY_sex,
  44.                     End,
  45.                 End,
  46.                 Child, RegisterGroup( tmp_object.stR_GR_Register ),
  47.                     Child, ra_Race := RadioObject,
  48.                         GroupFrameT( 'Race' ),
  49.                         MUIA_Radio_Entries, tmp_object.stR_RA_Race,
  50.                     End,
  51.                     Child, ra_Class := RadioObject,
  52.                         GroupFrameT( 'Class' ),
  53.                         MUIA_Radio_Entries, tmp_object.stR_RA_Class,
  54.                     End,
  55.                     Child, GroupObject,
  56.                         GroupFrameT( 'Armor' ),
  57.                         MUIA_Group_Columns, 2,
  58.                         Child, Label( 'Cloak' ),
  59.                         Child, ch_cloak := CheckMark( FALSE ),
  60.                         Child, Label( 'Shield' ),
  61.                         Child, ch_shield := CheckMark( FALSE ),
  62.                         Child, Label( 'Gloves' ),
  63.                         Child, ch_gloves := CheckMark( FALSE ),
  64.                         Child, Label( 'Helmet' ),
  65.                         Child, ch_helmet := CheckMark( FALSE ),
  66.                     End,
  67.                     Child, GroupObject,
  68.                         GroupFrameT( 'Level' ),
  69.                         MUIA_Group_Columns, 2,
  70.                         Child, Label( 'Experience' ),
  71.                         Child, sl_experience := SliderObject,
  72.                             MUIA_Slider_Min, 0,
  73.                             MUIA_Slider_Max, 100,
  74.                             MUIA_Slider_Quiet, FALSE,
  75.                             MUIA_Slider_Level, 3,
  76.                             MUIA_Slider_Reverse, FALSE,
  77.                         End,
  78.                         Child, Label( 'Strength' ),
  79.                         Child, sl_strength := SliderObject,
  80.                             MUIA_Slider_Min, 0,
  81.                             MUIA_Slider_Max, 100,
  82.                             MUIA_Slider_Quiet, FALSE,
  83.                             MUIA_Slider_Level, 10,
  84.                             MUIA_Slider_Reverse, FALSE,
  85.                         End,
  86.                         Child, Label( 'Dexterity' ),
  87.                         Child, sl_dexterity := SliderObject,
  88.                             MUIA_Slider_Min, 0,
  89.                             MUIA_Slider_Max, 100,
  90.                             MUIA_Slider_Quiet, FALSE,
  91.                             MUIA_Slider_Level, 24,
  92.                             MUIA_Slider_Reverse, FALSE,
  93.                         End,
  94.                         Child, Label( 'Condition' ),
  95.                         Child, sl_condition := SliderObject,
  96.                             MUIA_Slider_Min, 0,
  97.                             MUIA_Slider_Max, 100,
  98.                             MUIA_Slider_Quiet, FALSE,
  99.                             MUIA_Slider_Level, 39,
  100.                             MUIA_Slider_Reverse, FALSE,
  101.                         End,
  102.                         Child, Label( 'Intelligence' ),
  103.                         Child, sl_intelligence := SliderObject,
  104.                             MUIA_Slider_Min, 0,
  105.                             MUIA_Slider_Max, 100,
  106.                             MUIA_Slider_Quiet, FALSE,
  107.                             MUIA_Slider_Level, 74,
  108.                             MUIA_Slider_Reverse, FALSE,
  109.                         End,
  110.                     End,
  111.                 End,
  112.             End,
  113.         End,
  114.     End
  115.  
  116.     tmp_object.app             := app
  117.     tmp_object.wi_Characters   := wi_Characters
  118.     tmp_object.stR_name        := stR_name
  119.     tmp_object.cy_sex          := cy_sex
  120.     tmp_object.ra_Race         := ra_Race
  121.     tmp_object.ra_Class        := ra_Class
  122.     tmp_object.ch_cloak        := ch_cloak
  123.     tmp_object.ch_shield       := ch_shield
  124.     tmp_object.ch_gloves       := ch_gloves
  125.     tmp_object.ch_helmet       := ch_helmet
  126.     tmp_object.sl_experience   := sl_experience
  127.     tmp_object.sl_strength     := sl_strength
  128.     tmp_object.sl_dexterity    := sl_dexterity
  129.     tmp_object.sl_condition    := sl_condition
  130.     tmp_object.sl_intelligence := sl_intelligence
  131.  
  132.     IF tmp_object.app = NIL
  133.         Dispose( tmp_object )
  134.         tmp_object := NIL
  135.     ENDIF
  136.  
  137. ENDPROC tmp_object
  138.  
  139.  
  140.     /* This procedure deletes one app object */
  141. PROC dispose_app( tmp_object : PTR TO obj_app )
  142.  
  143.     Mui_DisposeObject( tmp_object.app )
  144.     Dispose( tmp_object )
  145.  
  146. ENDPROC
  147.  
  148.  
  149.     /* DoMethod() function */
  150. PROC doMethod( obj:PTR TO object, msg:PTR TO msg )
  151.  
  152. DEF h:PTR TO hook, o:PTR TO object, dispatcher
  153.  
  154.     IF obj
  155.         o := obj-SIZEOF object     /* instance data is to negative offset */
  156.         h := o.class
  157.         dispatcher := h.entry      /* get dispatcher from hook in iclass */
  158.         MOVEA.L h,A0
  159.         MOVEA.L msg,A1
  160.         MOVEA.L obj,A2           /* probably should use CallHookPkt, but the */
  161.         MOVEA.L dispatcher,A3    /*   original code (DoMethodA()) doesn't. */
  162.         JSR (A3)                 /* call classDispatcher() */
  163.         MOVE.L D0,o
  164.         RETURN o
  165.     ENDIF
  166.  
  167. ENDPROC NIL
  168.